package cn.micai.base.concurrent;

import java.util.PriorityQueue;
import java.util.Queue;

/**
 * 描述：PriorityQueue 类实质上维护了一个有序列表。加入到 Queue 中的元素根据它们的
 * 排序（通过其 java.util.Comparable 实现）或者根据传递给构造函数的 java.util.Comparator
 * 实现来定位。将上面程序中的 LinkedList 改变为 PriorityQueue 将会打印出 Four 而不是
 * One，因为按字母排列，即字符串的天然顺序，Four 是第一个。
 * <p>
 *
 * @author: 赵新国
 * @date: 2018/5/14 13:38
 */
public class PriorityQueueDemo {

    public static void main(String [] args) {
        Queue<String> queue = new PriorityQueue<>();
        queue.offer("One");
        queue.offer("Two");
        queue.offer("Three");
        queue.offer("Four");
        System.out.println("Head of queue is: " + queue.poll());
    }
}
